09 - Grundlagen Scripting
Einleitung
Scriptprogrammierung ist ein wichtiger Bestandteil der Systemadministration und Automatisierung. Ziel ist es, wiederkehrende Aufgaben nicht jedes Mal manuell auszuführen, sondern sie durch ein Script automatisiert ablaufen zu lassen. Ein Script ist dabei eine Textdatei, die aus einer Abfolge von Befehlen besteht, welche von einem Interpreter (z. B. PowerShell, CMD oder Windows Script Host) Schritt für Schritt ausgeführt werden.
Im Gegensatz zu klassischen Programmen werden Scripte nicht kompiliert, sondern direkt ausgeführt. Dadurch sind sie schnell erstellt, leicht anpassbar und ideal für administrative Aufgaben. Typische Einsatzgebiete sind Systemverwaltung, Benutzerverwaltung, Wartungsarbeiten, Installationen oder einfache Prüf- und Auswertungsaufgaben.
Ein klassisches Einstiegsbeispiel in jede Script- oder Programmiersprache ist das sogenannte "Hallo Welt" - Beispiel. Es dient nicht der Funktionalität, sondern zeigt, dass:
- das Script korrekt aufgebaut ist,
- die Laufzeitumgebung funktioniert,
- und Ausgaben erfolgreich erzeugt werden können.
1. Typische Einsatzgebiete von Scriptsprachen
Scripting-Sprachen werden überall dort eingesetzt, wo Abläufe standardisiert, beschleunigt oder fehlerfrei wiederholt werden sollen.
PowerShell wird hauptsächlich in Windows-Umgebungen verwendet und ist sehr eng mit dem Betriebssystem verzahnt. Sie arbeitet objektorientiert und kann tief in Systeme eingreifen. Typische Einsatzgebiete sind:
- Verwaltung von Active Directory (Benutzer, Gruppen, Computer)
- Auslesen von Systeminformationen
- Automatisierung von Server- und Clientaufgaben
- Softwareinstallation und -konfiguration
- Steuerung von Diensten, Prozessen und Netzwerkkomponenten
Batch (CMD) ist die klassische Windows-Skriptsprache. Sie ist einfacher aufgebaut und weniger mächtig als PowerShell, eignet sich aber gut für:
- Starten von Programmen
- Kopieren, Verschieben oder Löschen von Dateien
- einfache Installations- oder Startskripte
- kleine Automatisierungen ohne große Logik
VBScript (VBS) wurde früher häufig in Windows-Umgebungen eingesetzt, z. B. für Logon-Skripte oder Systemabfragen. Heute gilt es als veraltet, ist aber in älteren Umgebungen noch vorhanden. Typische Einsätze waren:
- Benutzeranmeldeskripte
- einfache GUI-Meldungen
- WMI-Abfragen
Grundsätzlich gilt:
Scripts sind besonders dann sinnvoll, wenn Aufgaben regelmäßig, wiederholbar und nach festen Regeln ablaufen.
2. "Hallo Welt" - Erklärung und Beispiele
PowerShell - Hallo Welt
Write-Host "Hallo Welt"
Dieses Script besteht aus einem einzigen Befehl. Write-Host gibt Text direkt in der Konsole aus. Der Text "Hallo Welt" ist ein sogenannter String. Das Script zeigt, dass PowerShell korrekt funktioniert und Befehle ausführen kann.
Start über die Kommandozeile:
.\hallo.ps1
Dabei ist zu beachten, dass PowerShell das Ausführen von Scripts nur erlaubt, wenn die Ausführungsrichtlinie (Execution Policy) entsprechend gesetzt ist.
Batch - Hallo Welt
@echo off
echo Hallo Welt
pause
@echo off verhindert, dass die einzelnen Befehle selbst angezeigt werden.
echo Hallo Welt gibt den Text aus.
pause sorgt dafür, dass das Konsolenfenster geöffnet bleibt.
Start über die Kommandozeile:
hallo.bat
VBScript - Hallo Welt
MsgBox "Hallo Welt"
Dieses Script zeigt ein grafisches Meldungsfenster an. Im Gegensatz zu PowerShell oder Batch erfolgt die Ausgabe hier nicht in der Konsole, sondern über eine Dialogbox.
Start über die Kommandozeile:
cscript hallo.vbs
oder per Doppelklick.
3. Prozeduren und Funktionen - Unterschied und Einsatz
In der Scriptprogrammierung unterscheidet man zwischen Prozeduren und Funktionen.
Eine Prozedur ist ein zusammengefasster Codeblock, der eine bestimmte Aufgabe ausführt, aber keinen Wert zurückgibt. Sie wird genutzt, um Abläufe übersichtlich zu strukturieren, zum Beispiel:
- Ausgaben erzeugen
- Dateien kopieren
- Meldungen anzeigen
- Logs schreiben
Eine Funktion hingegen gibt immer ein Ergebnis zurück. Dieses Ergebnis kann anschließend weiterverarbeitet oder ausgewertet werden. Funktionen werden verwendet, wenn:
- Berechnungen durchgeführt werden
- Werte zurückgegeben werden sollen
- Ergebnisse in Bedingungen (if) genutzt werden
Kurz zusammengefasst:
- Prozedur ⟶ führt etwas aus
- Funktion ⟶ liefert ein Ergebnis zurück
4. Debugging - Fehlersuche in Scripts
Wenn ein Script nicht wie erwartet funktioniert, ist Debugging notwendig. Je nach Scriptsprache gibt es unterschiedliche Möglichkeiten.
In PowerShell kann man:
- Zwischenergebnisse mit Write-Host ausgeben
- Variablenwerte anzeigen lassen
- mit Try / Catch Fehler gezielt abfangen
- Debugger in PowerShell ISE oder VS Code nutzen (Breakpoints, Schritt-für-Schritt)
In Batch-Skripten ist Debugging einfacher gehalten:
- @echo off entfernen, um alle Befehle sichtbar zu machen
- mit echo Variablen ausgeben
- pause verwenden, um das Script an bestimmten Stellen anzuhalten
In VBScript erfolgt Debugging meist durch:
- MsgBox oder WScript.Echo zur Anzeige von Werten
- schrittweises Testen einzelner Codeabschnitte
Allgemein gilt:
Fehlersuche in Scripts erfolgt oft über sichtbar gemachte Zwischenschritte, da komplexe Debugger nicht immer verfügbar sind.
5. Beispielskripte mit Prozeduren und Funktionen
PowerShell - Funktion
function Addiere {
param ($a, $b)
return $a + $b
}
$result = Addiere 5 7
Write-Host "Ergebnis: $result"
Die Funktion berechnet die Summe zweier Werte und gibt sie zurück. Das Ergebnis wird anschließend weiterverwendet.
Batch - Prozedur
@echo off
call :Begruessung
pause
exit
:Begruessung
echo Hallo aus der Prozedur
goto :eof
Batch hat keine Funktionen im Sinne von Rückgabeabwerten; stattdessen nutzt man Labels als Subroutinen.
VBScript - Funktion
Function Begruessung(name)
Begruessung = "Hallo " & name
End Function
MsgBox Begruessung("Name")
Die Funktion gibt einen String zurück, der direkt verwendet wird.
Zusammenfassung
Scriptprogrammierung ist ein zentrales Werkzeug zur Automatisierung in der IT. PowerShell, Batch und VBScript unterscheiden sich im Umfang und in den Einsatzmöglichkeiten, verfolgen aber das gleiche Ziel: Abläufe vereinfachen und standardisieren. "Hallo Welt"-Beispiele zeigen den grundlegenden Aufbau eines Scripts. Prozeduren strukturieren Abläufe, Funktionen liefern Rückgabewerte. Debugging erfolgt meist durch Ausgaben und schrittweises Testen.